A video codec may comprise an encoder which transforms input video into a compressed representation suitable for storage and/or transmission and a decoder that can uncompress the compressed video representation back into a viewable form, or either one of them. Typically, the encoder discards some information in the original video sequence in order to represent the video in a more compact form, for example at a lower bit rate.
Scalable video coding refers to coding structure where one bitstream can contain multiple representations of the content at different bitrates, resolutions or frame rates. A scalable bitstream typically consists of a “base layer” providing the lowest quality video available and one or more enhancement layers that enhance the video quality when received and decoded together with the lower layers. In order to improve coding efficiency for the enhancement layers, the coded representation of that layer typically depends on the lower layers.
Many hybrid codecs encode video information in two phases, predictive coding for obtaining a predicted block of pixels, and then coding an error between the predicted block of pixels and the original block of pixels. The predictive coding may be accomplished in various ways, including various types of sample prediction (e.g. motion compensation mechanisms, inter-view, inter-layer, intra and view synthesis predictions) and syntax prediction (e.g. motion vector prediction, block partitioning, filter parameter prediction). Moreover, the prediction dependencies may be applied across different domains (e.g. texture and depth) and scalability types.
Thus, it is possible that an encoding and/or a decoding scheme may enable the use of multiple types of scalability and/or multiple references for the same type of prediction. However, it has turned out that from the compression efficiency viewpoint, it may be inefficient to have all all prediction types available for prediction between the layers.